package model.dao;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import model.Atividade;

public class AtividadeDaoImpl implements AtividadeDao {
	List<Atividade> listaAtividades = new ArrayList<Atividade>();

	public void cadastrar(String nome, String tipo, String data, double valor, int idTurma) {
		Atividade atividade = new Atividade(nome,tipo,data,valor, idTurma);
		listaAtividades.add(atividade);
	}

	public boolean carregar(String arquivo)
			throws FileNotFoundException, IOException {

		try{
			String linha;
			String nome = "";
			String tipo = "";
			String data = "";
			double valor = 0;
			int idTurma = 0;

			File file = new File(arquivo);

			if (!file.exists()) {
				return false;
			}

			BufferedReader br = new BufferedReader(new FileReader(arquivo));

			while( (linha = br.readLine()) != null ){
				String[] line = linha.split("[;]");
				int i = 0;
				for (String str : line){
					i++;
					switch(i){
						case 1 : nome = str;
							break;
						case 2 : tipo = str;
							break;
						case 3 : data = str;
							break;
						case 4 : valor = Double.parseDouble(str);
							break;
						case 5 : idTurma = Integer.parseInt(str);
					}
				}
				this.cadastrar (nome,tipo,data,valor,idTurma);
			}
			br.close();
		}catch(NumberFormatException e){
			System.out.println("N�o � poss�vel carregar o arquivo de Atividade");
			System.out.println("\n\nPrograma Finalizado!");
			System.exit(1);
		}
		return true;
	}

	public void salvar(String arquivo, boolean adicionar)
			throws IOException {
		String nome;
		String tipo;
		String data;
		double valor;
		int idTurma;
		File file = new File(arquivo);
		file.delete();
		FileWriter fw = new FileWriter(arquivo, adicionar);
		for (Atividade atividade : this.listaAtividades) {
			nome = atividade.getNome();
			tipo = atividade.getTipo();
			data = atividade.getData();
			valor = atividade.getValor();
			idTurma = atividade.getIdTurma();
			fw.write(nome +";" +tipo+";" +data+";" +valor+";" +idTurma+ "\n");
		}
		fw.close();
	}
}
